Исходный текст
Option Explicit
Call ShowControlsInfo()
'==============================================================================
'Получить информацию об элементах управления выбранной формы
'==============================================================================
Sub ShowControlsInfo()
Dim frm, ctrl, strInfo, CtrlCol, i
'Дать пользователю выбрать форму ввода
Set frm = Nothing
Call GetForm(frm)
'Если пользователь выбрал не одну форму или отменил диалог, выйти из процедуры
If (frm Is Nothing) Then Exit Sub
'Вывести информацию по элементам управления в окно сообщений
Set CtrlCol = frm.Controls
'Если нет информации о, элементах управления, выйти из процедуры
If CtrlCol.Count = 0 Then
MsgBox "Нет элементов управления.", _
vbInformation, "Информация о текущей настройке"
Exit Sub
End If
ThisApplication.AddNotify "Всего элементов управления: " & CtrlCol.Count
For Each ctrl In CtrlCol
strInfo = "Название: " & ctrl.Name & Chr(13)
strInfo = strInfo & "" & "Значение: " & ctrl.Value
ThisApplication.AddNotify strInfo
Next
'"Отключить" все элементы управления и вывести форму на экран
For i = 0 to .Count - 1
CtrlColCctrl.Item(i).Enabled = FALSE
Next
frm.Show
End Sub
'==============================================================================
'==============================================================================
'Предложить пользователю выбрать одну форму ввода
'==============================================================================
Sub GetForm(frm)
Dim RetVal, ArSize, ArForms, i, SelDlg
'Заполнить массив ссылками на формы ввода, созданные в приложении
ArSize = ThisApplication.InputForms.Count
ReDim ArForms(ArSize)
For i=0 To ArSize-1
Set ArForms(i) = ThisApplication.InputForms(i)
Next
'Открыть диалог выбора, передав на вход массив форм
Set SelDlg = ThisApplication.Dialogs.SelectDlg
SelDlg.SelectFrom = ArForms
SelDlg.Caption = "Формы ввода"
SelDlg.Prompt = "Выберите одну форму для тестирования:"
RetVal = SelDlg.Show
'Если пользователь выбрал не одну форму или отменил диалог, выйти из процедуры
If (Not RetVal) Or (UBound(SelDlg.Objects)<>0) Then
Set frm = Nothing
Exit Sub
End If
'Получить ссылку на выбранную форму и вернуть ее в вызывающую процедуру
ArForms = SelDlg.Objects
Set frm = ArForms(0)
End Sub
'==============================================================================